// 角色模型
const { Role } = require('../../../models/role');
// 统一数据返回类
const { DataReturn } = require('../../../common/returnclass');

/**
 * @api {Delete} /roles/auth/:id/:del_id 删除角色权限
 * @apiGroup Admin-Roles
 *
 * @apiParam {ObjectId} id 角色id
 * @apiParam {ObjectId} del_id 权限id
 *
 * @apiSuccess {Number} code 状态码
 * @apiSuccess {Object} data 返回数据
 * @apiSuccess {String} msg  返回消息
 */
function ergodic(node,id) {
	// 如果当前 node 节点不包含 children 属性，则是三级节点
	if (!node.children) return;
	
	node.children.forEach((item,index) => {
		if (item._id == id) node.children.splice(index,1);
		ergodic(item, id)
	})
}

module.exports = async (req, res) => {
	// 角色id
	let { id, del_id } = req.params;
	console.log(req.params);
	
	let roles = await Role.findOne({  _id: id });
	if (!roles) return DataReturn.getData(res, 200, [], '该角色不存在');
	ergodic(roles, del_id);

	// 保存角色信息
	Role.updateOne({ _id:id }, { children: roles.children })
	.then((result)=>{
		DataReturn.getData(res,200,roles.children,'删除权限成功')
	}).catch((err)=>{
		DataReturn.getData(res,400,[],'删除权限失败')
	})
	
};